import UIKit

//
@available(iOS 9.0, *)
extension QKC where AA :UIFocusGuide {
	/// If disabled, UIFocusGuides are ignored by the focus engine, but still participate in layout. Modifying this flag allows you to conditionally enable or disable certain focus behaviors. YES by default.
    open func isEnabled_qk_s(_ isEnabled:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: isEnabled).then_QK { $0.value.isEnabled = isEnabled }
	}
    open func isEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.isEnabled
	}

	/// If focused, the guide attempts to redirect focus to each environment in the array, in order, stopping when a focusable item in an environment has been found.
    @available(iOS 10.0, *)
    open func preferredFocusEnvironments_qk_s(_ preferredFocusEnvironments:  [UIFocusEnvironment]) -> QKC<AA,YY,ZZ, [UIFocusEnvironment]>{
		return link(next: preferredFocusEnvironments).then_QK { $0.value.preferredFocusEnvironments = preferredFocusEnvironments }
	}
    @available(iOS 10.0, *)
    open func preferredFocusEnvironments_qk_g() -> QKC<AA,YY,ZZ, [UIFocusEnvironment]>{
		 self +^ self.value.preferredFocusEnvironments
	}

	/// Setting a preferred focused view marks this guide's layoutFrame as focusable, and if focused, redirects focus to its preferred focused view. If nil, this guide is effectively disabled.
    @available(iOS, introduced: 9.0, deprecated: 10.0)
     open func preferredFocusedView_qk_s(_ preferredFocusedView:  UIView?) -> QKC<AA,YY,ZZ, UIView?>{
		return link(next: preferredFocusedView).then_QK { $0.value.preferredFocusedView = preferredFocusedView }
	}
    @available(iOS, introduced: 9.0, deprecated: 10.0)
     open func preferredFocusedView_qk_g() -> QKC<AA,YY,ZZ, UIView?>{
		 self +^ self.value.preferredFocusedView
	}

}

